package com.bugstack.domain.strategy.service;

import com.bugstack.domain.strategy.model.entity.RaffleAwardEntity;
import com.bugstack.domain.strategy.model.entity.RaffleFactorEntity;

import java.util.concurrent.ExecutionException;

/**
 * @Author: czb
 * @Description: 抽奖策略接口
 * @DateTime: 2025/3/5 15:49
 **/
public interface IRaffleStrategy {

    /**
     * 执行抽奖：入参抽奖流影响因子，返回抽奖抽奖奖励实体
     *
     * @param raffleFactorEntity 抽奖因子实体对象，根据入参信息计算抽奖结果
     * @return 抽奖的奖品
     */
    RaffleAwardEntity performRaffleStrategy(RaffleFactorEntity raffleFactorEntity) throws ExecutionException, InterruptedException;
}
